package pt.uminho.di.poo.transitarios.pessoa;

import java.util.Calendar;
import java.util.GregorianCalendar;
import java.util.List;

import pt.uminho.di.poo.transitarios.produto.encomenda.IEncomenda;
import pt.uminho.di.poo.transitarios.util.Morada;
import pt.uminho.di.poo.transitarios.util.NIF;

public abstract class AbstractCliente extends AbstractPessoa implements
		ICliente {

	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;

	private GregorianCalendar dataRegisto;

	private List<IEncomenda> encomendasSolicitadas;

	private TipoCliente tipoCliente;
	private IEncomenda ultimaEncomenda;

	public AbstractCliente(Morada morada, String nacionalidade, String nome,
			NIF numeroContribuinte, GregorianCalendar dataRegisto, String codigo) {
		super(morada, nacionalidade, nome, numeroContribuinte, codigo);
		this.dataRegisto = dataRegisto;
	}

	public Calendar getDataRegisto() {
		return this.dataRegisto;
	}

	public List<IEncomenda> getEncomendasSolicitadas() {
		return this.encomendasSolicitadas;
	}

	public TipoCliente getTipoCliente() {
		return this.tipoCliente;
	}

	public IEncomenda getUltimaEncomenda() {
		return this.ultimaEncomenda;
	}

	public void setDataRegisto(GregorianCalendar dataRegisto) {
		this.dataRegisto = dataRegisto;
	}

	public void setEncomendasSolicitadas(List<IEncomenda> encomendasSolicitadas) {
		this.encomendasSolicitadas = encomendasSolicitadas;
	}

	public void setTipoCliente(TipoCliente tipoCliente) {
		this.tipoCliente = tipoCliente;
	}

	public void setUltimaEncomenda(IEncomenda ultimaEncomenda) {
		this.ultimaEncomenda = ultimaEncomenda;
	}

}
